using System;
using Engine.Particles.Interfaces;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Engine.Particles.Effects{
    public abstract class ParticleBase : IBaseParticle{
        
        public abstract void Draw(GameTime gameTime);

        public virtual bool Visible{
            get { return false; }
        }

        public virtual int DrawOrder{
            get { return 0; }
        }

        public event EventHandler<EventArgs> VisibleChanged;
        public event EventHandler<EventArgs> DrawOrderChanged;

        public abstract void SetSpriteBatch(SpriteBatch spriteBatch);
    }
}